home *** CD-ROM | disk | FTP | other *** search
-
- /* ---------------------------------------------------------
- CSWITCH.C
-
- This module contains functions that support a genneric
- command-line switch.
-
- Global Functions Defined Herein:
- csw_ison(), csw_parse()
-
- Local Functions Defined Herein:
- strupr()
-
- Written by: William J. McMahon on: August 25, 1990
- ---------------------------------------------------------- */
- #include <stdio.h>
- #include <ctype.h>
- #include <limits.h>
- #include <string.h>
- #include "cswitch.h"
-
- #define FNAME_SIZE 8
- #define MAX_CSW_AREAS 10
-
- /* ... defines an area for which a swtich is "turned on". */
- static struct {
- char file[FNAME_SIZE]; /* ... source (name only). */
- int min; /* First line that is "on".*/
- int max; /* Last line that is "on". */
- } csw_area[MAX_CSW_AREAS];
-
- static int n_csw_areas = 0; /* Number of areas in use. */
-
- #ifdef TEST /* ----------- Test Harness ----------- */
- main(argc, argv)
- int argc;
- char *argv[];
- {
- csw_parse(argc, argv);
-
- CSW_EXEC(printf("\nSwitch @ line %d is on.", __LINE__));
-
- CSW_EXEC(printf("\nSwitch @ line %d is on.", __LINE__));
-
- CSW_EXEC(printf("\nSwitch @ line %d is on.", __LINE__));
-
- CSW_EXEC(printf("\nSwitch @ line %d is on.", __LINE__));
-
- CSW_EXEC(printf("\nSwitch @ line %d is on.", __LINE__));
-
- }
- #endif /* ------------------------------------ */
-
- /* ---------------------------------------------------------
- CSW_ISON
-
- Test whether a source file location (file name and line
- number) has been switched "on".
-
- If 'file' is NULL it will test for ANY switch on.
- If 'line' is zero it will test for ANY line in the file.
-
- Returns: TRUE or FALSE
- ---------------------------------------------------------- */
- BOOL csw_ison(
- char *file,
- int line)
- {
- char name[FNAME_SIZE + 1];
- char *p;
- int i;
-
- if (n_csw_areas == 0) /* If no debug areas */
- return (FALSE); /* are set quick exit. */
-
- if (file == NULL) /* NULL 'file' asks */
- return (TRUE); /* if ANY are on. */
-
- p = strrchr(file, '\\'); /* Find begining of */
- if (p != NULL) /* file name. */
- ++p; /* Skip past \. */
- else
- p = file; /* No path was spec'd. */
-
- strncpy(name, p, FNAME_SIZE);
- name[FNAME_SIZE] = '\0'; /* Terminate string. */
-
-